/*针对本项目简单封装的UI生成方法*/




/*table初始化方法
 * 对layui.table的简单封装
 * 使用layui.table完全一样的传参方式
 * 针对本项目初始化了一些常用设置，避免重复编码
 * 默认post请求application/x-www-form-urlencoded，分页参数current: 1, size: 10
 * 返回参数json格式{"success":true,"code":200,"msg":"操作成功","data":{"records":[{},{}],"total":6}}
 * 参数封装不全，可根据业务需要自行添加
 * */
function initTable(params) {
	var options = {
		 method: 'post'
		,dataType : 'json'
		,request : {
			pageName : 'current' // 页码的参数名称，默认：page
		   ,limitName : 'size' // 每页数据量的参数名，默认：limit
		}
	    ,response : {
			statusCode : 200 // 重新规定成功的状态码为 200，table 组件默认为 0
		}
	    ,parseData : function(res) { 
			//console.log(res)
			return {
				"code" : res.code, 
				"msg" : res.msg, 
				"count" : res.data ? res.data.total : 0, 
				"data" : res.data ? res.data.records : ""
			};
		}
	    ,height: 600
	    ,page: true
	}
	options = $.extend(true, options, params);
	//console.log(options)
	layui.table.render(options);
};


/*异步查询生成select下拉框
 * 对ajax方法的简单封装，延用ajax的参数
 * 新增参数：
 * ele: 被操作的元素对象属性名
 * value: 返回结果参数编码
 * name:  返回结果参数值
 * height: 下拉框高度，默认150px
 * 默认get方式请求
 * 接收json格式的返回参数 {"success":true,"code":200,"msg":"操作成功","data":[{},{}]}
 * 提供layer方式的报错提醒
 * 例： 
 * initAsynSelect({
	   ele: '#roleSelect'
	  ,url: ctx+"/sys/role/getList"
	  ,value: 'roleId'   
	  ,name: 'roleName'
  	})
 * */
function initAsynSelect(params) {
	var value = params.value;
	var name = params.name;
	var height = params.height ? params.height : '150px';
	var select = $(params.ele);
	
	var options = {
			type: 'get'
			,dataType : 'json'
			,success : function(res) {
				if (res.success == false) {
					layer.open({
						title : '消息',
						content : res.msg
					});
				} else {
					var data = res.data;
					for (key in data) {
						select.append("<option value='" + data[key][value] + "'>"
								+ data[key][name] + "</option>");
					}
					layui.form.render();
					$(".layui-form-select dl").height(height);
				}
			}
			,error : function() {
				layer.open({
					title : '消息',
					content : '网络异常！'
				});
			}
	}
	options = $.extend(options, params);
	$.ajax(options);
	//layui.form.render();
};


/*异步查询字典生成下拉框
 * 默认请求url: ctx+"/sys/common/getDictValueByCode";
 * 可传入字符串作为查询编码
 * 如未传入参数，默认将select中的name属性值作为字典类型编码带入查询
 * 例:
 * <select id="userStatusSelect" name="userStatus">
		<option value="">请选择状态</option>
   </select>
   $("#userStatusSelect").initSelectDict('userStatus');
         或  $("#userStatusSelect").initSelectDict();
 *
 * */
$.fn.initSelectDict = function(dictCode) {
	var url = ctx+"/sys/common/getDictValueByCode";
	var select = $(this);
	var name = dictCode ? dictCode : select.attr("name");
	var data = {"typeCode": name};
		  $.ajax({
			  async: false,
			  type : 'get',
			  url : url,
			  data : data,
			  dataType : 'json',
			  success : function(res) {
				  if(res.success==false){
					  layer.open({
						  title: '消息'
						  ,content: res.msg
					  }); 
				  }else{
					  var data = res.data;
					  var ele = select
					  for(key in data){
						  ele.append( "<option value='"+data[key].valueCode+"'>"+data[key].valueName+"</option>" );
					  }
				  }
			  },
			  error : function() {
				  layer.open({
					  title: '消息'
					  ,content: '网络异常！'
				  }); 
			  }
		  });
	layui.form.render();
}

